package com.seecen.HJM.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.seecen.HJM.model.entity.Playlist;
import com.seecen.HJM.model.vo.PlayListVo;
import com.seecen.HJM.model.vo.PlaylistDetailVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
* @author jiachen
* @description 针对表【tb_playlist】的数据库操作Mapper
* @createDate 2025-09-26 14:09:53
* @Entity com.seecen.HJM.model.entity.Playlist
*/
public interface PlaylistMapper extends BaseMapper<Playlist> {

    List<PlayListVo> getRandomPlaylists(int limit);
    //获取用户收藏歌单的风格
    List<String> getFavoritePlaylistStyles(List<Long> favoritePlaylistIds);

    List<PlayListVo> getRecommendedPlaylistsByStyles(
            @Param("sortedStyleIds") List<Long> sortedStyleIds,  // 对应 XML 的 #{sortedStyleIds}
            @Param("favoritePlaylistIds") List<Long> favoritePlaylistIds,  // 对应 XML 的 #{favoritePlaylistIds}
            @Param("limit") int limit  // 对应 XML 的 #{limit}，参数名从 i 改为 limit
    );

    PlaylistDetailVO getPlaylistDetailById(Long playlistId);

    // 根据用户收藏的歌单id列表获取歌单列表
    IPage<PlayListVo> getPlaylistsByIds(
            Long userId,
            Page<PlayListVo> page,
            @Param("playlistIds") List<Long> playlistIds,
            @Param("title") String title,
            @Param("style") String style);

}




